 var RSA = require('../utils/wx_rsa.js')
  const app = getApp()

var HOST = "https://yklmt.etonepay.com/pos/basicMerchant/merchant_activate"
// var HOST = "http://192.168.2.135:11114/sellerpok/index.php/openapi/promotion_route/accept"


  const key = 'c92a54950b4c09247ec02edce69f6a2d'

const SERVERPORT = "https://yklmt.etonepay.com/pos/basicSend/small_routine"

  // const SERVERPORT = "http://ceshi6.sdykt.com.cn:1280/sellerpok/pos/basicSend/small_routine"

const VSERVERPORT = "https://yklmt.etonepay.com/pos/basicSend/basic_bnLogin"
// const VSERVERPORT = "http://192.168.2.135:11114/pos/basicSend/basic_bnLogin"

const NORMAL = "https://yklmt.etonepay.com/pos/basicSend/"
// const NORMAL = "http://192.168.2.135:11114/basicSend/"

  function httpPost(url, jsonParm, callback) {
    wx.request({
      method: 'POST',
      url: NORMAL+url,
      data: jsonParm,
      success(res) {
        var response_code = res.data ? res.data.return_code : res.return_code;
        var response_mes = res.data ? res.data.return_msg : res.return_msg;
        if (response_code == '0000') {
          callback('', res.data);
        } else {
          callback(response_mes,'');
        }
      },
      fail(e) {
        callback('请求超时')
      },
      complete: function() {
      }
    })
  }
  //post请求
  function Cpic_fetchPost(url, jsonParm, callback) {
    var merchan = app.globalData.merNo;
    var tempstr = '';
    var dic = jsonParm;
    dic['version'] = '1.0.0';
    dic['device_info'] = '';
    dic['source'] = 'wxapp';
    dic['sign_type'] = 'RSA';
    dic['seller_id'] = merchan;
    // dic['m_phone'] = app.globalData.tel;
    var sdic = Object.keys(dic).sort();
    for (var ki in sdic) {
      var temp = dic[sdic[ki]];
      if (temp == ''||!temp) {
        continue;
      }
      var jsons = '';
      if (Array.isArray(temp)) {
        jsons = JSON.stringify(temp);
        tempstr += sdic[ki] + "=" + jsons + "&";
      } else {
        tempstr += sdic[ki] + "=" + temp + "&";
      }
    }
    tempstr = tempstr + 'key=' + key;
    // tempstr = tempstr.replace(/\s+/g, ""); 
    // var sign = RSA_Sign.hexMD5(tempstr);
    var sign_rsa = new RSA.RSAKey();
    sign_rsa = RSA.KEYUTIL.getKey(privateKey);
    var hashAlg = 'sha1';
    var Sig = sign_rsa.signString(tempstr, hashAlg);
    Sig = RSA.hex2b64(Sig); // hex 转 b64
    jsonParm["sign"] = Sig;
    console.log('发送post请求 url=' + url + '|' + 'jsonParm=' + JSON.stringify(jsonParm));

    wx.request({
      method: 'POST',
      url: url,
      // header: { 'Content-type': 'application/x-www-form-urlencoded' },
      data: jsonParm,
      success(res) {
        var response_code = res.data.return_code;
        var response = res.data;
        var cstatus = res.statusCode;
        if (cstatus == 200) {
          if (response_code != "0000") {
            var respo = response.return_msg ? response.return_msg : '返回异常'
            callback(respo, response_code);
          } else {
            var resigndata = res.data;
            var valid = resigndata.data;
            if (!valid) {
              callback("", resigndata);
              return;
            }
            var bstatus = validSign(valid, resigndata.sign);
            if (bstatus) {
              callback("", res.data);
            } else {
              callback('验签失败');
            }
          }
        } else {
          callback('网络请求异常');
        }
      },
      fail(e) {
        callback('请求超时')
      },
      complete: function() {
        
      }
    })
  }

  function validSign(data, sign) {
    var dic = data
    var sdic = Object.keys(dic).sort();
    var tempstr = '';
    for (var ki in sdic) {
      var temp = dic[sdic[ki]];
      if (temp == '') {
        continue;
      }
      var jsons = '';
      if (Array.isArray(temp) || temp.constructor == Object) {
        jsons = JSON.stringify(temp);
        tempstr += sdic[ki] + "=" + jsons + "&";
      } else {
        tempstr += sdic[ki] + "=" + temp + "&";
      }
    }
    if (tempstr == '') return true;
    tempstr = tempstr + 'key=' + key;
    // tempstr = tempstr.replace(/\s+/g, ""); 

    var verify_rsa = new RSA.RSAKey();
    verify_rsa = RSA.KEYUTIL.getKey(publicKey);
    var Sig = RSA.b64tohex(sign);
    var ver = verify_rsa.verifyString(tempstr, Sig)
    console.log('验签结果：' + ver)
    return ver;
  }

  module.exports = {
    Cpic_fetchPost: Cpic_fetchPost,
    SERVERPORT: SERVERPORT,
    httpPost: httpPost,
    VSERVERPORT: VSERVERPORT,
  }

  var privateKey = '-----BEGIN RSA PRIVATE KEY-----MIICWwIBAAKBgQDkHfJU25PxBDP2fA/AkQTUkmLdU9JHjPydlR1tDZLCU9VWagnxTY46jT9gv6ral/i+xPq3wGmj1Hpaajh6mDWYBD84psOUIRNQ9RdcuAkHSQQar/MvNfxmZwx21uGhsBuyr3yNDKDaV1DWJ9yi02pvZHUJFORut+YnNTqezKqiGwIDAQABAoGAfy+jOWTj63Fod3lcXwV8J/kmXjip+XLGNiY5rd/vf6G2ROQCfyO6tTKjr5Gt9QreiZ7SGzmQrON/BIJM0y2iUv4nB+W0fyzAWmeOJtFxIjbh5/pOedpK89I7gDHvuiijkwp4vG70qCqJeyp/FGQPaITGQlxEPRw/7JO1tXXDOCECQQD19S8DUF6nA+h9qUqWsnYi1qZObfFmwjegLLS7IGtks/rxkqLL1DzJRtKnIA3PNpQOS0occ+aNLVvbHNuZCH6fAkEA7W5JVQIDce+/LHYuYaAwTDvBP9/XmaropvzGMJruNsuZCoh7pOvz2L1iR83TH7ISvSj+0dULbaLYf3TTPDQ3BQJAMc1BhbRCViMOclNTDQx5qzg3WG4ekSYGSWKD/dfkpvFigIOmfwsse7zhboGpCioM9I/+I6C8MB3dGZLQTD5SFQJAT8ooSrEKh1eSX1a374bttDDAmL6YrcOJu9Rmph7qvu9c1vVW1+2TXNsIFClPMe+d7IPCXrHBzW5UY0DXW/wQIQJASKu1fSNfTCbGIMd3CPGHc/O4H7Kkf3rwBl8lvXNQPQ75Vj22G0W3aSc6yP3C3uvUQi8kDOyekvaZqg2T0kiekA==-----END RSA PRIVATE KEY-----'

  var publicKey = '-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkHfJU25PxBDP2fA/AkQTUkmLdU9JHjPydlR1tDZLCU9VWagnxTY46jT9gv6ral/i+xPq3wGmj1Hpaajh6mDWYBD84psOUIRNQ9RdcuAkHSQQar/MvNfxmZwx21uGhsBuyr3yNDKDaV1DWJ9yi02pvZHUJFORut+YnNTqezKqiGwIDAQAB-----END PUBLIC KEY-----'